/*
    This file is part of open-wars <http://code.google.com/p/open-wars/>.

    open-wars is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    open-wars is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with open-wars.  If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef opengl_input_h
#define opengl_input_h

#ifdef WIN32
	#include <Windows.h>
	#include <gl/gl.h>
	#include <gl/glu.h>
	#include <freeglut.h>
#elif IS_OSX
	#include <OpenGL/gl.h>
	#include <OpenGL/glu.h>
	#include <GLUT/glut.h>	
#else
	#include <GL/gl.h>
	#include <GL/freeglut.h>
#endif

#include <input-interface.h>

#define CWK_F1        GLUT_KEY_F1        
#define CWK_F2        GLUT_KEY_F2        
#define CWK_F3        GLUT_KEY_F3        
#define CWK_F4        GLUT_KEY_F4        
#define CWK_F5        GLUT_KEY_F5        
#define CWK_F6        GLUT_KEY_F6        
#define CWK_F7        GLUT_KEY_F7        
#define CWK_F8        GLUT_KEY_F8        
#define CWK_F9        GLUT_KEY_F9        
#define CWK_F10       GLUT_KEY_F10       
#define CWK_F11       GLUT_KEY_F11       
#define CWK_F12       GLUT_KEY_F12       
#define CWK_LEFT      GLUT_KEY_LEFT      
#define CWK_UP        GLUT_KEY_UP        
#define CWK_RIGHT     GLUT_KEY_RIGHT     
#define CWK_DOWN      GLUT_KEY_DOWN      
#define CWK_PAGE_UP   GLUT_KEY_PAGE_UP   
#define CWK_PAGE_DOWN GLUT_KEY_PAGE_DOWN 
#define CWK_HOME      GLUT_KEY_HOME      
#define CWK_END       GLUT_KEY_END       
#define CWK_INSERT    GLUT_KEY_INSERT    

class OpenGLInput : public IInputInterface
{
    public:
        OpenGLInput();

        // IInputInterface ===============================================================================
		virtual void Initialize				(void);
        virtual MousePosResult GetMousePos  (void);
};

#endif // opengl_input_h
